﻿namespace ClassLibrary.BusinessLayer.BusinessObjects
{
    using System;

    [Serializable, ClassTable("Product", true)]
    public class Product : ParentTableClass
    {
        private decimal decDeciFld1;
        private decimal decDeciFld2;
        private DateTime dteCreateDate;
        private DateTime dteDateFld1;
        private DateTime dteDateFld2;
        private DateTime dteDateFld3;
        private DateTime dteUpdateDate;
        private string strCreateBy;
        private string strModel;
        private string strModelName;
        private string strOwnerGroupID;
        private string strProjectGroupID;
        private string strRemark1;
        private string strRemark2;
        private string strRemark3;
        private string strRemark4;
        private string strRemark5;
        private string strRevision;
        private string strSpecification;
        private string strUpdateBy;

        [ClassProperty(false, false, true, true, true, "CreateBy", "@CreateBy", ClassPropertyAttribute.DBTypes.Varchar)]
        public string CreateBy
        {
            get
            {
                return this.strCreateBy;
            }
            set
            {
                this.strCreateBy = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "CreateDate", "@CreateDate", ClassPropertyAttribute.DBTypes.DateTime)]
        public DateTime CreateDate
        {
            get
            {
                return this.dteCreateDate;
            }
            set
            {
                this.dteCreateDate = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "DateFld1", "@DateFld1", ClassPropertyAttribute.DBTypes.DateTime)]
        public DateTime DateFld1
        {
            get
            {
                return this.dteDateFld1;
            }
            set
            {
                this.dteDateFld1 = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "DateFld2", "@DateFld2", ClassPropertyAttribute.DBTypes.DateTime)]
        public DateTime DateFld2
        {
            get
            {
                return this.dteDateFld2;
            }
            set
            {
                this.dteDateFld2 = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "DateFld3", "@DateFld3", ClassPropertyAttribute.DBTypes.DateTime)]
        public DateTime DateFld3
        {
            get
            {
                return this.dteDateFld3;
            }
            set
            {
                this.dteDateFld3 = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "DeciFld1", "@DeciFld1", ClassPropertyAttribute.DBTypes.Decimal)]
        public decimal DeciFld1
        {
            get
            {
                return this.decDeciFld1;
            }
            set
            {
                this.decDeciFld1 = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "DeciFld2", "@DeciFld2", ClassPropertyAttribute.DBTypes.Decimal)]
        public decimal DeciFld2
        {
            get
            {
                return this.decDeciFld2;
            }
            set
            {
                this.decDeciFld2 = value;
            }
        }

        [ClassProperty(false, true, false, false, false, "Model", "@Model", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Model
        {
            get
            {
                return this.strModel;
            }
            set
            {
                this.strModel = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "ModelName", "@ModelName", ClassPropertyAttribute.DBTypes.Varchar)]
        public string ModelName
        {
            get
            {
                return this.strModelName;
            }
            set
            {
                this.strModelName = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "OwnerGroupID", "@OwnerGroupID", ClassPropertyAttribute.DBTypes.Varchar)]
        public string OwnerGroupID
        {
            get
            {
                return this.strOwnerGroupID;
            }
            set
            {
                this.strOwnerGroupID = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "ProjectGroupID", "@ProjectGroupID", ClassPropertyAttribute.DBTypes.Varchar)]
        public string ProjectGroupID
        {
            get
            {
                return this.strProjectGroupID;
            }
            set
            {
                this.strProjectGroupID = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "Remark1", "@Remark1", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Remark1
        {
            get
            {
                return this.strRemark1;
            }
            set
            {
                this.strRemark1 = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "Remark2", "@Remark2", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Remark2
        {
            get
            {
                return this.strRemark2;
            }
            set
            {
                this.strRemark2 = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "Remark3", "@Remark3", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Remark3
        {
            get
            {
                return this.strRemark3;
            }
            set
            {
                this.strRemark3 = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "Remark4", "@Remark4", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Remark4
        {
            get
            {
                return this.strRemark4;
            }
            set
            {
                this.strRemark4 = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "Remark5", "@Remark5", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Remark5
        {
            get
            {
                return this.strRemark5;
            }
            set
            {
                this.strRemark5 = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "Revision", "@Revision", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Revision
        {
            get
            {
                return this.strRevision;
            }
            set
            {
                this.strRevision = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "Specification", "@Specification", ClassPropertyAttribute.DBTypes.Varchar)]
        public string Specification
        {
            get
            {
                return this.strSpecification;
            }
            set
            {
                this.strSpecification = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "UpdateBy", "@UpdateBy", ClassPropertyAttribute.DBTypes.Varchar)]
        public string UpdateBy
        {
            get
            {
                return this.strUpdateBy;
            }
            set
            {
                this.strUpdateBy = value;
            }
        }

        [ClassProperty(false, false, true, true, true, "UpdateDate", "@UpdateDate", ClassPropertyAttribute.DBTypes.DateTime)]
        public DateTime UpdateDate
        {
            get
            {
                return this.dteUpdateDate;
            }
            set
            {
                this.dteUpdateDate = value;
            }
        }
    }
}

